Apparatus &amp; methods for image processing optimization for variable data printing

ABSTRACT

Apparatus and methods for providing a pre-rasterized print job for variable data printing are disclosed. In one embodiment, a set of printer characteristics may be determined and then transferred to a typesetting system. The typesetting system may then pre-rasterize objects of the print job based in part on the received printer characteristics. A pre-rasterized print job, including the pre-rasterized objects and print layout instructions may then be generated, such as in the form of a PostScript file, which may then be transferred to a raster image processor (RIP) for generation of printed output. In another embodiment, a printer characterization file may be used for execution on a printing system to determine the set of printer characteristics, that may include native resolution, rotation angle, compression data and/or other data or information characterizing the printing system.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is related to U.S. patent application Ser. No.11/200,861, entitled SYSTEM & METHOD FOR DISTRIBUTED DESIGN OF AVARIABLE DATA PUBLICATION, filed on Aug. 10, 2005, the content of whichis hereby incorporated by reference herein in its entirety for allpurposes.

FIELD OF THE INVENTION

The present invention relates generally to digital printing and digitalprinting systems and methods. More particularly but not exclusively, theinvention relates to systems and methods for pre-processing digitalprinting jobs to minimize raster image processing and maximize printerthroughput.

BACKGROUND

As printing technologies migrate from traditional printing methods suchas lithography to digital printing, use of digital printers andassociated processing of printed images and page layouts in digitalprinting systems has dramatically increased. While traditional printingmethods may still be more cost effective for large quantities ofstandardized print, the cost of digital printing systems and associatedmedia has continued to decrease, making digital printing moreaffordable. In addition, digital printing technology can oftenfacilitate customized printing in a more cost-effective way thattraditional high volume printing methods.

For example, one type of customized printing is known as variable-dataprinting (VDP) (also known as variable-information printing (VIP) or VIor variable data publishing). VDP is a form of on-demand printing inwhich elements such as text, graphics and images may be changed from oneprinted piece to the next, without stopping or slowing down the printingprocess and without using information from a database or external file.For example, a set of personalized letters, each with the same basiclayout, can be printed with a different name and address on each letter,while retaining other common elements, such as images, text, associateddrop shadows, or other common elements. Variable data printing istypically used for direct marketing, customer relationship management,advertising and invoicing on self-mailers, brochures, or postcardcampaigns, but may also be used for a range of other printingapplications where customization is required. An article describing VDPentitled “Speaking in Tongues: Sorting Out Variable Data PrintingLanguages by Eliot Harper, incorporated by reference herein, isavailable athttp://www.fujixerox.com.au/products/image/media/TSR-0906-Speak-Tongues-reprint.pdf.VDP printing may be implemented using a language such as PersonalizedPrint Markup Language or PPML, which is described in an article entitled“Introduction to the Personalized Print Markup Language: The PPML Familyof XML Standards, available atppml.podi.org/component/option,com_docman/Itemid,0/task,doc_download/gid,13&Itemid=/whichexplains how PPML can be used to implement VDP by caching images andreusing them.

VDP is a direct outgrowth of digital printing technology, whichharnesses computer systems, digital printing devices, and specializedsoftware to create high-quality black and white or full color documentswith a look and feel comparable to conventional offset printing.Variable data printing enables the mass customization of documents viadigital print technology, as opposed to the ‘mass-production’ of asingle document using offset lithography. For example, instead ofproducing 10,000 copies of a single document to deliver a single messageto 10,000 customers, variable data printing provides for printing 10,000unique documents with customized messages for each customer.

There are two main operational modes to VDP. In one mode, the documenttemplate and the variable information are both sent to a Raster ImageProcessor or Raster Image Processing System (RIP) which combines the twoto produce each unique document. The other mode is to combine the staticand variable elements prior to printing, using specialized VDP softwareapplications. These applications produce a print job in a programminglanguage format, such as in PostScript or PPML, which organizes theprint stream efficiently so that the static elements need only beprocessed once by the RIP. Consequently, digital printing systems usingVDP have become more and more pervasive, while providing high quality,customizable print output on even small office and print shop printingdevices. The wide availability of digital pre-print tools such as theFusion Pro Desktop, designed and sold by the assignee of thisapplication, allow users to generate custom VDP print jobs on a widevariety of print composition computer systems and either print them ontheir own printing systems or send the print job to a third partyprinting system to generate the printed output.

Despite the availability of these printing systems and associatedsoftware applications, processing of a digital print job at the printingapparatus is often slowed by the need to rasterize images, font effects,and other print features, just before printing, at the RIP. This has theeffect of slowing down the overall print throughput and increasingprinting costs. Consequently, there is a need in the art for improvedsystems and methods for enhancing the performance and throughput ofdigital printing, and in particular enhancing print job raster imageprocessing by using pre-rasterization of print elements based onpredetermined printer characteristics.

SUMMARY

The present invention relates to apparatus and methods for providing apre-rasterized print job for variable data printing (VDP). In oneaspect, a set of printer characteristics may be determined and thentransferred to a typesetting system. The typesetting system may thenpre-rasterize objects of the print job based in part on the receivedprinter characteristics. A pre-rasterized print job, including thepre-rasterized objects and print layout instructions may then begenerated, such as in the form of a PostScript file, which may then betransferred to a raster image processor (RIP) for generation of printedoutput.

In another aspect, a printer characterization file may be used forexecution on a printing system to determine the set of printercharacteristics, that may include native resolution, rotation angle,compression data and/or other data or information characterizing theprinting system.

In another aspect, the present invention relates to a method forenhancing performance in a printing system, comprising receiving a setof printer characteristics associated with a first printer, receivingdata defining one or more objects to be incorporated in a print job,rasterizing, based at least in part on the set of printercharacteristics, a first object of the one or more objects to generate afirst pre-rasterized object and generating a pre-rasterized print job,in a programmed file format, said print job including said firstpre-rasterized object and a set of print layout instructions.

In another aspect, the present invention relates to a method forenhancing performance in a printing system, comprising receiving, at theprinting system, a printer characterization file including executableinstructions to determine a set of one or more printer characteristicsof the printing system, executing the instructions on a processor of theprinting system so as to determine said one or more printercharacteristics and providing, as an output, said one or more printercharacteristics.

In another aspect, the present invention relates to a computer readablemedium containing processor executable instructions for receiving a setof printer characteristics associated with a first printer, receivingdata defining one or more objects to be incorporated in a print job,rasterizing, based at least in part on the set of printercharacteristics, a first object of the one or more objects to generate afirst pre-rasterized object and generating a pre-rasterized print job,in a programmed file format, said print job including said firstpre-rasterized object and a set of print layout instructions.

In another aspect, the present invention relates to a computer readablemedium containing instructions for execution on a printing systemprocessor to receive a printer characterization file including a secondset of executable instructions, initiate execution of the printercharacterization file so as to determine a set of one or more printercharacteristics and provide, as an output, said set of one or moreprinter characteristics.

Additional aspects of the present invention are further described belowin conjunction with the appended Drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is more fully appreciated in connection with thefollowing Detailed Description taken in conjunction with theaccompanying drawings, wherein:

FIG. 1A is an illustration of a typical printing system on whichembodiments of the present invention may be implemented;

FIG. 1B is an example workflow for print processing in accordance withembodiments of the present invention;

FIG. 2 is an illustration of an embodiment of a Composition/TypesetterSystem in accordance with aspects of the present invention;

FIG. 3 is an illustration of an embodiment of a Printer System inaccordance with aspects of the present invention;

FIG. 4 is an illustration of an embodiment of a process for determininga set of printer characteristics in accordance with aspects of thepresent invention;

FIG. 5 is an illustration of an embodiment of a process for generationof a pre-rasterized print job in accordance with aspects of the presentinvention;

FIG. 6A is an illustration of details of resolution processing tofacilitate pre-rasterization of print objects in accordance with aspectsof the present invention;

FIG. 6B is an illustration of details of resolution and rotationprocessing to facilitate pre-rasterization of print objects inaccordance with aspects of the present invention;

FIG. 6C is an illustration of details of printer output rotationprocessing to facilitate pre-rasterization of print objects inaccordance with aspects of the present invention;

FIG. 6D is an illustration of details of multiple printer page rotationto facilitate pre-rasterization of print objects in accordance withaspects of the present invention;

FIG. 6E is an illustration of details of transparency processing tofacilitate pre-rasterization of print objects in accordance with aspectsof the present invention;

FIG. 7 is an illustration of one embodiment of a process for processinga pre-rasterized print job in accordance with aspects of the presentinvention;

FIG. 8 is an illustration of one embodiment of a process for verifyingthe correct resolution of a pre-rasterized print job prior to generatingprinted output, in accordance with aspects of the present invention;

FIG. 9 is an illustration of one embodiment of a process for determiningan optimal compression, in accordance with aspects of the presentinvention;

FIG. 10 is an example printed output from PostScript printer resolutionand rotation test code, in accordance with aspects of the presentinvention;

FIG. 11A is an example first page of printed output from a PostScriptfile including an embedded pre-rasterized image file, in accordance withaspects of the present invention;

FIG. 11B is an example second page of printed output from a PostScriptfile including an embedded pre-rasterized image file, in accordance withaspects of the present invention;

FIG. 11C is an example fourth page of printed output from a PostScriptfile including an embedded pre-rasterized image file, in accordance withaspects of the present invention;

FIG. 11D is an example fourth page of printed output from a PostScriptfile including an embedded pre-rasterized image file, in accordance withaspects of the present invention.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE PRESENT INVENTION Overview

As noted above, VDP systems facilitate user composition of customizedVDP print jobs at the user's print composition system. A typical printjob, however, must be sent to a printer which may have any of a varietyof printing characteristics. Current printing systems, however, fail totake into consideration the widely variable characteristics of a rangeof printers, and therefore, print job processing and output dot patternor bitmap generation may be slowed, in some cases dramatically, when theraster image processor (RIP) is required to convert print job objectssuch as images, vector content, or other print elements such as dropshadows into the printer's native resolution and/or rotation. In someprinting application, such as the Fusion Pro Desktop tools offered bythe assignee of this patent application, characteristics of a specificprinter may be pre-coded into the application to provide printerspecific pre-rasterized output and/or rotation; however, thisfunctionality is limited to specific hard-coded printer characteristics.More specifically, these systems do not calculate or determine therotation angle for the printer, which is the angle of the paper flowrelative to the frame buffer. In addition, these systems do notpre-rasterize images set at rotation angles other than 0, +/−90 degreesor 180 degrees.

In various embodiments, the present invention addresses these and otherproblems with current printing systems by providing systems and methodsfor dynamically determining a set of characteristics of a particularprinter, providing the characteristics to the composition or typesettingsystem, generating a print job including programmed instructions forgenerating the printed output along with pre-rasterized print objects,providing the print job to a printing system, generating, based on theprint job program instructions and pre-rasterized objects, printedoutput, as well as providing other potential advantages.

Typical Printing System Configuration

In order to further describe details of various embodiments of thepresent invention, attention is now directed to FIG. 1A whichillustrates a typical digital printing system 100 on which variousembodiments of the present invention may be implemented. Printing system100 includes two primary sub-sections—a composition or typesettingsubsection (also denoted herein as composition system or typesetter) 110and a printing subsection (also denoted herein as a printing system)150. These subsections may be interconnected via a network 130 as shownin FIG. 1A, such as a local area network (wired LAN, such as an Ethernetor other LAN), a wireless network, a wide area network (WAN), such asthe Internet, a corporate network, or via other networkingconfigurations. In some embodiments, subsections 110 and 150 need not bedirectly interconnected as shown in FIG. 1, but data and information maybe transferred manually between them, such as by human users oroperators. Data and information transferred between subsystems 110 and150 may include a set of printer characteristics 142, a print job 144, aprinter characteristics determination file 146, as well as other data orinformation (not shown).

Composition subsection 110 may include two computer sub-systems 115 and120. Sub-system 115 is denoted herein as a typesetter human interfaceand is typically a computer system containing hardware and softwareconfigured to receive printer characteristics 142, which includeinformation associated with the characteristics of a particular printersystem (or systems) 152, store that information in a memory, and provideconnectivity facilitating access to that information to sub-system 120or transfer the received information to sub-system 120. Sub-system 115may also be configured to communicate directly with printing subsection150 to generate a printer characteristics determination file 146 toquery for printer characteristics 142 of one or more printers 152 a-152n, and/or other information, and receive printer characteristics 142from the printing subsection 150.

Sub-system 120 is denoted herein as a composition engine or typesettersystem, and it is configured with hardware and software to allow a userto compose a print job using a printing composition or typesetting toolsuch as Fusion Pro Desktop or another similar or equivalent tool. Insome embodiments, the components and functionality associated withtypesetter human interface 115 (also denoted herein as “interface” 115for brevity) and composition engine 120 may be combined in a singlecomputer system rather than in the form of separate sub-systems as shownin FIG. 1A. In this case, the combined system may be referred to hereinmerely as a typesetter or typesetter system 110.

In addition to supporting functionality associated with composition ofprint jobs as may be provided by an application such as Fusion Pro,composition engine 120 may also be configured to execute additionalfunctions as may be implemented in one or more functional modules, asfurther described herein, to receive printer characteristics andgenerate one or more pre-rasterized print jobs 144 for execution on oneor more printers 152 a-152 n of printing system 150. As used herein, apre-rasterized print job describes a print job, typically in the form ofa printer programming language such as PostScript, that includesinstructions for generating the printed output along with one or morepre-rasterized objects (such as images, fonts, drop-shadows, othervector objects, etc.). Embodiments of this functionality and associatedimplementation details for embodiments are further described below.

Printing system 150 includes one or more printers 152 a-152 n and mayalso include other hardware or software elements (not shown). Each ofthese printers 152 may further be divided into a raster image processormodule (RIP) 154 and a rendering station module 156. RIP 154 istypically a computer system configured to receive a print job andgenerate the specific page printing bitmap or page dot pattern forrendering (i.e., generating the printed output) on rendering station156. As is known in the art, each printer has a native output resolutionor resolutions at which the printed output is generated. The printedoutput consists of printed dots or other very small printed features,with the dots placed on the page by a print rendering apparatus of therendering station 156. For example, the dots may consist of inks,toners, or other print media placed on the printed page by ink jets orthermal mechanisms, at the printer's native resolution. The nativeresolution defines the particular dot pattern of the printed output thatcan be produced on the particular printer's rendering station. Ineffect, any raster objects of an incoming print job are converted by theRIP into a page layout in the printer's native resolution, irrespectiveof the specific original resolution of the object. This requires thatobjects such as images be converted from their initial resolution to theprinter's native resolution.

In addition, the rotation of the object on the page may vary based onthe particular printer's page layout, how the printed pages areconfigured on the printed sheet (for example, some printed pages may beoriented horizontally on the page, whereas other pages having the samecontent and objects may be rotated 90 degrees or 180 degrees to maximizeprintable area of the output), and/or based on variable rotation ofprinted objects, beyond just fixed +/−90 or 180 degree rotations.

When a print job is provided to the printer, such as printers 152 a-152n of FIG. 1A, the RIP 154 receives the print job, typically in the formof a printer programming language file such as Adobe PostScript, andgenerates all or part of the printed page in the native printerresolution and rotation. As noted above, this processing may includeconverting an object from the print job from one resolution to another,generating a raster object in the printer's native format from a vectorobject such as a font, drop shadow, etc., rotating objects based on thedesired print orientation or rotation, and/or other processing such asis further described and illustrated herein.

To further elaborate on details of processing as may be performed by theRIP 154, a RIP is a component of a printing system that generates arasterized page layout for printing based on an input print job. Thepage layout is then sent to a print rendering device, such as renderingstation 156 as shown in FIG. 1A, for generation of the printed output.The print job input is typically in the form of a page description in ahigh-level page description language such as PostScript, PortableDocument Format, XPS, and the like. These print jobs include a set ofprogramming instructions that describe how to generate the particularprint job as well as specific objects (components) of the print job,such as images, fonts, drop shadows, vector elements, etc. that may beneeded to produce the printed output. The RIP performs data processingto convert a print job file (such as, in an exemplary embodiment, aPostScript file) from the programming language description of theprinted page to a dot pattern page layout for rendering the page in thenative output resolution and rotation.

A RIP can be implemented as a software component executing on a computersystem, such as RIP 156 of FIG. 1A, or as a firmware or software programexecuted on a microprocessor, DSP, ASIC or other hardware inside aprinter. RIP software may be optimized for VDP or may not be VDP-aware,depending on the type of print tasks at hand. Both types of RIPtechnology are widely available from software vendors such as EFI andHarlequin, and from printer vendors such as Hewlett-Packerd,Nexpress/Kodak and Xerox. For high-end and intermediate digitaltypesetting standalone hardware RIPs are typically used. PostScriptprinters contains an associated PostScript RIP either inhardware/software elements or in firmware. One advantage of the presentinvention is that it operates on RIPs that are not VDP-aware such asoffice printer equipment made by companies such as Ricoh and Canon.

As noted above, a RIP is required to generate raster elements of printedpages as well as to convert raster objects provided at a particularresolution and rotation into the printer's native resolution androtation. Various techniques for performing these transformations areknown in the art, however, this processing can become verycomputationally intensive as well as time consuming when done at theRIP. Consequently, if the processing requirements are sufficientlylarge, the RIP may not be able to keep up with the output speed of therendering station of the printer system, which can slow down theprinting output and affect overall printing efficiency.

For example, in the system of FIG. 1A, if a print job generated atcomposition engine 120 includes a number of image objects in a rasterformat (such as, for example, JPG, TIFF, etc.) at a high resolution andspecific rotation and the final printed output size and associatednative resolution of the rendering station requires a differentresolution and/or rotation, the RIP 154 must convert the images to thenew resolutions and/or rotations. If the RIP 154 cannot perform thisprocessing fast enough, the rendering station 156 must pause or slowdown the output, reducing overall printing throughput.

In order to address this problem as well as provide other potentialadvantages, various embodiments of the present invention facilitateoffloading of the processing required by the RIP 154 to the compositionsystem 120 so as to improve overall printer system throughput.

Typical Printing Process Workflow

Attention is now directed to FIG. 1B which illustrates a representativeprint job processing workflow as may be performed by embodiments of thepresent invention. As shown in FIG. 1B, the print job processingworkflow may begin with stage 160 where characteristics of theparticular printer system's rendering station 156 are determined. Thismay be done by providing a printer characteristics determination file146 to the printing system to execute instructions on the printer(s) 152to determine their characteristics. These characteristics typicallyinclude native resolution as well as rotation for printed output. Asnoted previously, different printers have different resolutions andoutput orientations, and existing printing systems do not dynamicallydetermine these characteristics for arbitrary printer types.

Determination of the printer characteristics may be done by providingthe printing system printer(s) 152 with pre-programmed executable codeor instructions, such as in the form of a PostScript file or otherexecutable file or script 146 (such as, for example, a print file in ascripted typesetting language such as DataLogix, etc.), that theninstructs the printer to generate output at the native resolution and/orgenerates data defining the printer's output characteristics. Theresulting output data may be “hidden” from direct view by providing anencoded output with the printer characteristics embedded so as topreclude a user from readily determining the printer characteristics byinspection of the output.

In some embodiments, the printer characteristics 142 may be provided ona paper or other printed output. In other embodiments, the printercharacteristics may be provided in the form of a digital data file thatcan be transferred to a digital data storage medium for manual transferto the typesetter 110 and/or electronically transmitted to thetypesetter 110. In any event, the printer characteristics are typicallydetermined by executing a pre-programmed series of instructions,provided by or from the composition engine, on the printers 152, andthen receiving, from the printers 152, an output that includes theprinter characteristics 142. Example code for implementing this isdescribed later herein and an example output from an implementation ofthe example code is shown in FIG. 10.

In addition to native resolution and orientation, other printercharacteristics may include data characterizing RIP performance, such asthe ability to decompress compressed bitmap files, speed or timing ofimage decompression, and/or other RIP performance characteristics thatcan be determined by configuration, query or computation, including sizeof memory, hard disk (or other storage media) available space,PostScript language level, available fonts, ability to handle partiallytransparent images, and so forth. For example, the PostScript (or otherexecutable file) may include instructions to time the RIP whiledecompressing a compressed bitmap image file (such as, for example,timing decompression of a JPG or TIFF compressed image) to determine thespeed at which the RIP can perform this processing. This characteristicmay be advantageous in determining whether to provide pre-rasterizedobjects, such as images, from the composition engine to the RIP in acompressed form versus an uncompressed form. In addition, testing RIPimage decompression timing may be helpful in determining an optimalimage compression based on the RIP's decompression ability and speed.One implementation of a logical flow for testing of RIP performance withimage decompression is shown in process 900 of FIG. 9 and describedbelow.

In this embodiment, at a first stage 910 the printer model is identifiedand the printer's hardware configuration is determined. Once this isdone, a test program, preferably in the form of a PostScript program, isprovided to the printer and executed on the printer's software at stage915. In operation, the PostScript program compresses and decompressesimages by writing the compressed image to the storage medium on theprinter or associated with the printer and referring it to the RIP, andthen by writing the decompressed image to the storage medium andreferring it to the RIP. This operation is typically performed for bothmemory, local hard disk, and (if the RIP is so configured) network diskstorage or other external storage media. At stage 920, the timing foreach operation is compared to determine the relative speed of readingthe image from each storage medium and rendering it in the RIP. Based onthis comparison, a determination is then made at stage 925 as to whichis the optimal/fastest speed (i.e, rendering of the compressed ordecompressed images). A flag or other indicator may then be returned atstage 930, or a memory location or other marker may be set indicatingthe faster response and/or including other performance data such asrelative speeds or timing, etc. In operation, storage and/ortransmission of media in compressed or uncompressed format may bedetermined based on the test results (storage of images is typicallydone to a temporary storage location associated with the RIP). Thisapproach may provide non-intuitive advantages, such as when overallthroughput is improved based on providing non-compressed images asopposed to compressed images (which would typically be provided). Inaddition, this process may be repeated for different levels ofcompression, so as to determine an optimal level of compression for aparticular print job and/or printer (rather than just comparingcompressed versus uncompressed images).

Once the printer characteristics 142 have been determined, thisinformation may then be provided to the typesetter 110, such as viahuman interface 115 of FIG. 1A, at stage 162. The receivedprinter-specific configuration information may then be stored in thehuman interface 115 and/or transferred to the composition engine 120 forstorage therein at stage 164. As noted previously, human interface 115and composition engine 120 may be combined into a single typesetter 110.

In some embodiments, human interface 115 or typesetter 110 may include auser interface, such as a graphical user interface (GUI) or otherinterface, to allow a user to manually enter the printer characteristics142 provided by the printing system 150 and specific printer(s) 152. Forexample, the printing system 150 may provide the printer characteristicsof one or more printers 152 on a hard copy printout, with thisinformation then manually entered at the human interface 115 at stage162. Alternately, the printer characteristics 142 may be storedelectronically on a digital storage medium such as a disk, CD, DVD orother similar media, USB Flash device, or other portable drive, or viaother digital storage media, for transfer to typesetter 110. Inaddition, the printer characteristics 142 may be electronicallytransferred, via the network 130, to the typesetter 110 at stage 164.

In any case, once the printer characteristics 142 have been received atthe typesetter 110, they may then be stored in a memory at stage 164,where they may then be provided to or made accessible to a compositionapplication, such as Fusion Pro Desktop or another compositionapplication, to be used to generate a print job including one or morepre-rasterized output objects at stage 166 as is further describedbelow. This may be done in the form of a plug-in or other modularmechanism to provide the pre-rasterization functionality to an existingcomposition application.

In addition, in some embodiments the printer characteristics may also beplaced in a file or database associated with, available to, or otherwiseaccessible by one or more composition application or workstations. Forexample, this database may be part of a shared computer/server systemthat can be accessed by multiple users/composition application over anetwork such as a local area network or a wide area network (such as theInternet). There may be several advantages to having the printercharacteristics stored in this manner for reference purposes, includinguses to confirm results and/or ensure that the composition of a givendocument will operate optimally for a given RIP and printer model. Forexample, These advantages may include: 1) a user may be able to acquireand confirm characteristics for a given printer against a database (orother collection) of stored values; 2) a user may also be able to updatethe file with new values or settings, additional printer models, orother relevant parameters or data; 3) a user may be able to submit jobswith a customer printer angle and resolution based on a particularprinter model and identifier, even if a query to the printer for itscurrent values fails (the values will typically rarely change for agiven printer model); 4) a composition application (or theuser/composer) of a document can choose a device from the file and applyprinter characteristics to image processing without running a PostScriptprogram, doing a manual check, or relying on default values, or wherethose steps are not available; 5) different compositing applications orworkstations can use and add to the database (if it is configured touser access and editing); 6) a user may be able to associated printercharacteristics with a new printer in the database, based on theprinter's module number, if the model's characteristics are alreadystored. Other advantages may also be provided by such a configuration.

In an additional optional step 168, the pre-rasterized print job 144 mayalso be provided to a display output device, such as to a monitor, fordisplay of the pre-rasterized output in the native format of thespecific printer 152. For example, composition engine 120 and/or humaninterface 115 may include a monitor, such as an LCD monitor or otherdisplay device as are known or developed in the art. The pre-rasterizedoutput may then be displayed on the display device, in the printer'snative resolution and rotation, so as provide a highly accurate view ofhow the final printed image will appear on the printed output. This mayprovide advantages since current systems do not allow users to view, atthe compositioning stage, what the final printed output will look likeat the native resolution of the specific output printer.

The print job 144 may then be provided to the printer system and RIP forthe specifically characterized printer 152 at stage 170. This may bedone by electronic transfer of the print job 144 via network 130 and/orvia manual transfer of the print job 144 from typesetter 110 to printingsystem 150. In either case, the print job 144 will include programinstructions for execution on the RIP to generate the printed output,along with one or more pre-rasterized objects generated in thecomposition engine based at least in part on the specific printercharacteristics 142. In some embodiments, the print job 144 may alsoinclude original objects that have not been pre-rasterized. For example,the print job 144 may include both pre-rasterized image objects alongwith the corresponding image object in its original resolution androtation. This may be helpful if the print job 144 is sent to adifferent printer than the targeted printer and/or if the printercharacteristics otherwise do not match the pre-determined printercharacteristics 142. For example, if the characteristics do not match,the RIP can still process the document using the unrasterized version ofthe image (at the unrasterized print output speed).

As described further below, instructions for testing for such a matchmay be incorporated into the print job as programming instructions forexecution on the RIP. For example, PostScript code (or other executablecode) may be included in the file to process in the RIP such that theprint angle and resolution are requested, and a match to the settingprovided by the composition application is confirmed. If these is nomatch, standard PostScript image settings may be applied (i.e., as wouldbe processed without RIP optimization). If a match is found, then theoptimized rasterization images are used by the RIP.

At stage 172, the RIP will then generate all or a portion of a printedpage in the printer's native resolution and/or rotation based on theprint job 144. This stage includes using, to the extent possible,pre-RIPed objects, such as pre-RIPed image bitmaps that are generated atthe composition engine in the printer's native resolution and/orrotation. As noted previously, the print job 144 will include thesepre-RIPed objects. At the time of print job execution, the printingprocess is controlled by the executable instructions include in theprint job 144, such as, for example, executable instructions definingthe print job layout provided in the print job 144 in PostScript formatas well as position and orientation of the pre-RIPed objects.

At the final step, at stage 174, the printed output is rendered (i.e.,printed) on the selected output media based on the printed page layoutgenerated by the RIP in response to the provided print job 144.

Typical Typesetter/Composition System Configuration

Attention is now directed to FIG. 2, which illustrates a typical systemconfiguration for a composition system or typesetting system, such astypesetter 110 as shown in FIG. 1A. For purposes of brevity, the variouscomponents of FIG. 2 are shown in a simplified form, with some elementsremoved for purposes of clarity. For example, FIG. 2 illustratescomponents of a single computer system, however, two separate systems115 and 120 may also be used as shown in FIG. 1A, and/or otherconfigurations may also be used.

Composition system 110 includes one or more processors 210, one or morememories or other program and data storage elements 260, and animage/content database 230, which may be part of memory 260. Memory 260further includes functional modules for providing the variousfunctionality as is described herein. These functional modules mayinclude hardware elements, software elements, firmware elements, and/orcombinations of these elements to implement various functionality. Inparticular, the functional modules may include a Pre-RasterizationGenerator Module 272, a User Interface Module 272, a PrinterCharacterization Module 276, a Print Job Generator Module 278, and/orcombinations of these various modules as well as other modules. Inaddition, memory 260 may include one or more operating systems 262 orother applications (not shown), as well as a compositioning module 264,which may be, for example, the Fusion Pro Desktop or another compositionor typesetting application program. The functionality provided by thefunctional modules 270 may be incorporated into the compositioningmodule 264, such as via direct integration or via plug-ins or otherincorporation mechanisms. In addition, compositioning module 264 may bea standalone application or may be integrated into another application,such as in the form of a plug-in or via other program integrationmechanisms.

Composition system 110 may also include other elements such as one ormore media drives 230 (removable hard disk drives, CD, DVD, BD drives,Flash memory drives, USB drives, and the like) to facilitate input,output and storage of print jobs, printer characterization data, imagefiles and/or other data or information. In addition, composition system110 may include one or more I/O devices 220, such as USB or Firewireinterfaces, one or more user interfaces and associated hardware and/orsoftware, such as keyboards, computer mice, trackballs, and the like,one or more network connections 240, such as wired or wireless networkconnections (Ethernet, Wi-Fi, etc.) to facilitate connectivity to othersystems, such as printing system 150. A display 250, such as a CRTmonitor, LCD monitor, or other visual output device may also be includedto facilitate data and information input and output, user interfacefunctionality, as well as to provide a composition interface and/or adisplay mechanism for viewing pre-rasterized page layouts orpre-rasterized objects in the printer's native resolution.

Attention is now directed to FIG. 3 which illustrates a typical printersystem configuration. Printer system 152 as shown in FIG. 3 may be asingle printer or one of a plurality of printers in a printing system150 as shown in FIG. 1A As described previously, printer system 152includes a RIP module 154 and a rendering station module 156, and mayinclude other elements (not shown). RIP module 154 may include one ormore processors or CPU's 310, one or more data I/O modules 320configured to interface between RIP 154 and rendering station 156, and amemory 360. Memory 360 further includes functional modules for providingthe various functionality as is described herein. These functionalmodules may include hardware elements, software elements, firmwareelements, and/or combinations of these elements to implement variousfunctionality.

In particular, in a typical embodiment, the RIP may be in the form of aRIP software module 370 comprising a set of functional modules that mayinclude a Compositor Module 372, one or more programming job processingmodules such as a Postscript Processing Module 374, a PCL InterpreterModule 376 and/or other print job processing modules configured togenerate a page layout based on a received print job. In addition, thefunctional modules may include page or frame buffer modules configuredto store native page or frame information for transmission to therendering station 156.

For example, frame buffer module may include a complete page in a dotpattern form that can be directly converted to printed output by theprint rendering apparatus 358. Other functional modules such asoperating system module 362 may also be stored in memory 360.

In addition, RIP 154 may include a database 340 that may be integratedwith memory 360. Database 340 may be used to store data, information andobjects such as are described herein, including pre-rasterized objectsand objects provided in the print job to be rasterized by the RIP module370. The compositor module 372 may be used for taking output from aPostScript interpreter 374 and PCL module 376 and combining them withother page elements in the frame buffer 378 to account for transparency,where supported (frame buffer 378 stores a bitmap of the printed output,and data loaded into the frame buffer as “transparent” will allow otherdata in the buffer at the same pixel location to show-through). RIP 154may also include network connection module(s) 330 to facilitate networkconnectivity such as to typesetter 110 or to other systems or devices,as well as one or more media drives 325 (removable hard disk drives, CD,DVD, BD drives, Flash memory drives, USB drives, and the like) tofacilitate input, output and storage of print jobs, storage and outputof printer characterization data, image files and/or other data orinformation.

Rendering station 156 is configured to receive formatted pageinformation, such as a page dot pattern, from RIP 154 and generate theprinted output page in the print rendering apparatus 358's nativeresolution. While rendering stations 156 may have differentconfiguration based on the type of printer system they are incorporatedin, they will generally include at least a processor 352 or logiccircuit equivalents such as a PLD, ASIC, etc., as well as memory 356 forstorage of incoming data, and a print rendering apparatus 358 whichgenerates the printed page output (such as by laser, ink jet, etc.).

Determination of Printer Characteristics

As described previously, a first step in print job processing inaccordance with various embodiments of the present invention relates todetermining a set of printer characteristics 142 for the particularprinter to be used for the print job. This functionality may be done inseveral ways. For example, FIG. 4 illustrates one embodiment of aprocess 400 for implementing this functionality. At stage 410,determination of printer characteristics 142 is initiated. This may bedone by providing an executable file 146 to the RIP which includesinstructions to determine the printer characteristics. In an exemplaryembodiment, the executable file 146 is a Postscript file that may beprovided automatically to the RIP 154 from typesetter 110 via network130, and/or may be provided manually to the RIP 154 by a user. This filemay be generated by a printer characterization generator module 276 asshown in FIG. 2, which includes instructions to generate the executablefile 146 in a programmed instruction format, such as PostScript.

The executable file 145 (PostScript file) includes one or more sets ofinstructions to direct the printer to generate printer characteristics.For example, at stage 420 the instructions may include instructions togenerate printer characteristic data corresponding to the printer'snative resolution and/or rotation angle. This data may then be stored ina memory of the RIP 154. Additional printer characteristics may bedetermined at optional stage 430, such as determination of printerdecompression timing (decompression timing versus file type, such as JPGvs TIFF, decompression timing versus degree of compression, etc.). Thiswould be done in the course of, or added to, the process stages fortesting the RIP as described previously herein.

At stage 440 the printer characteristics may then be provided as outputfor transfer to the typesetter 110. For example, output may be providedin the form of a printed page including the printer characteristics 142.The data may be provided in an encoded form so as to avoid directdetermination of the generated data, and/or to facilitate manual entryof the data into the typesetter 110. Alternately or in addition, thedata may be provided on a digital data storage medium such as magneticmedia, a CD, DVD, BD, etc., a file on a Flash or other drive, or onother digital storage media. In addition, the file may be transferredelectronically from printing system 150 to typesetter 110 such as viathe network 130 or via other electronic connections.

In any case, the printer characteristics 142 as generated in the RIP areprovided to the typesetter 110/composition engine 120 for use inpre-rasterizing a print job based at least in part of the printercharacteristics 142. The pre-rasterized print job 144 may then betransferred back to the printer 150 for output rendering on one or moreprinters 152 a-n.

In an alternate embodiment, a set of printer characteristics 142 mayalternately be generated in advance for a set of printers 152, such asby executing the printer characterization file 146 on test printers orproviding the printer characterization file to printer manufacturers,sellers, etc. to generate the printer characteristics. A collection ofthese printer characteristics for a plurality of printers may then bestored in a database and/or integrated into a composition applicationsuch as Fusion Pro Desktop so as to avoid the steps of generating theprinter characteristics at or near the time of print job execution. Thisapproach may provide advantages in integrating a large set of printercharacteristics into the composition application, however, it may alsohave disadvantages because it would require continual updates of printercharacteristic information into the composition application for newprinters as they become available.

Generation of Pre-Rasterized Objects and Print Job

Attention is now directed to FIG. 5, which illustrates an embodiment ofa process 500 for generating a pre-rasterized print job 144 such as isshown in FIG. 1A. As noted previously, the pre-rasterized print job 144includes one or more pre-rasterized objects generated based on a set ofspecific printer characteristics 142 received and stored in typetter110. These printer characteristics may be generated by a process such asprocess 400 illustrated in FIG. 4, or by another similar or equivalentprocess. They may also be supplied as part of a printer database orother printer configuration information file or document.

At stage 510, printer characteristics 142 are received at a typesetter110/composition engine 120 and may be stored in a memory for access bythe composition application and/or print job generation modules such asmodules 270 as shown in FIG. 2.

At stage 520, the print job may be analyzed by one or more of modules270 to determine which objects are suitable for pre-rasterization basedon the received printer characteristics. Modules 270 may includeinstructions to analyze the print job layout generated by thecomposition application(s)/composition modules 264 and determine objectsin the print job that are suitable for pre-rasterization in theprinter's native resolution and/or rotation. These objects may includeimage objects, graphics, printer effects such as drop, transparency orshading elements, and/or other raster or vector objects. The processinggenerates as output PostScript code (or other executable code) for thetypesetter/printer by analyzing the objects, determining a set ofobjects for pre-rasterization, determining the printer resolution andangle of rotation, and generating an output file based on theinformation. In summary, the print job is analyzed to determine whichobjects to pre-rasterize so as to improve printer performance, with thepre-rasterized objects referenced in the PostScript code, along with(typically) the associated unrasterized objects.

Once the print composition is analyzed and objects suitable forpre-rasterization have been identified, the objects may then beconverted at stage 530 to the printer's native resolution and rotationas determined by the printer characteristics 142. For example, rasterimage objects may be converted from an original resolution to a newresolution matching the printer's native resolution. In addition, theraster image objects may be rotated based on the printer's rotationand/or on an additional rotation as may be specified by the print jobobject layout. The pre-rasterized objects may also be converted to aparticular file format based on analysis of characteristics of theprinter's performance as may be contained in the printer characteristics142. For example, timing information generated in response to the RIP154's ability to decompress compressed files, such as compressed images,may be used to determine an optimal compression level to provide thepre-rasterized objects in the print job 144. For example, it may be moreefficient to provide images in an uncompressed form or at a lower levelof compression than might otherwise be used if the RIP 154 is slow atdecompressing images. In addition, the RIP's ability to decompress filesin particular formats (such as TIFF vs JPG) may be used to determinewhich file format to store the pre-rasterized objects in for delivery inthe print job. Additional details of various embodiments ofpre-rasterization processes and output files are described below withrespect to FIG. 6.

The pre-rasterized objects may then be stored in a memory of thetypesetter 110, such as in database 230 of FIG. 2. At stage 540 thepre-rasterized objects may then be combined with print layoutinformation to generate the pre-rasterized print job 144. As notedpreviously, the pre-rasterized print job 144 will include one or morepre-rasterized objects as well as instructions to be executed on the RIPto generate the final printer output. In an exemplary embodiment, thepre-rasterized print job includes a PostScript file including theseelements. In some embodiment, additional elements such as the imageobjects in their original resolution may also be provided.

At a final stage 550, the pre-rasterized print job 144 is provided tothe print system 150. This may be done manually by transfer of the printjob 144 to a digital storage medium such as a magnetic disk, CD, DVD,DB, etc., Flash drive or other digital storage medium. The files mayalternately be transferred to the printer system 150 via the network130, as shown in FIG. 1A, and/or may be manually delivered to andinstalled on the RIP 154 by a user.

Pre-Rasterization Processing Embodiment Details

Attention is now directed to FIG. 6A, which illustrates details of anobject pre-rasterization as may be performed by various embodiments ofthe present invention. As shown in FIG. 6A, an image object 610 a may beused by the composition system 120 in generation of a print layout. Theobject may represent any of a number of print objects provided in araster format. A typical example would be an image object, which is arow/column representation of an image, graphic or other visual element.Image objects would typically be stored in a standard bitmap/rasterformat such as JPEG, TIFF, BMP, and the like. Consequently, the imageobject 610 a defines the image elements as pixels in a row/columnconfiguration. Common bitmap image resolutions include 640×480,1024×768, etc. The image size may also be characterized by the totalpixel size (i.e., 3.3 Megapixel (MP), 12 MP, etc.) which is the productof the number of row and column pixels.

Original images are typically in a relatively high resolution, and thefinal printed output generated by a printer such as printer 152 may needto be at pre-rasterized at a lower resolution to support the printer'snative resolution. As noted previously, this often requires a resolutionconversion from the image object 610 a's original resolution to a newresolution 610 b matching the size of the object as printed on the pagein view of the printer's native resolution. There are a variety oftechniques known in the art for doing such a resolution conversion (alsoknown as re-sampling), and any of these techniques, as well as newlydeveloped techniques, may be used to perform resolution conversion.However, a potential advantage of the present invention is to performthis resolution conversion based on the specific printer characteristicsand final printed object size so as to eliminate or reduce the need forthe RIP 154 to perform any image object rasterization to generate theoutput page layout dot pattern.

Pre-rasterization prepares an original image for printing according tothe available image area and print characteristics for the printeddocument. For example, if the original image is at a 2000 by 2000 pixelsize (i.e., the size of an output from a four megapixel image sensor),the desired output size on the printed page may require that the imageis down-sampled to match the printer hardware's native resolution. Ifthe printer's native resolution is 300 dots per inch (dpi) and thedesired printed size of the image is 1 inch square, the image would bedown-sampled to 300×300 pixels. This requires the pre-rasterizationprocess to account for the printer's native resolution and the desiredoutput size, and then pre-rasterize based on these parameters (andoptionally compress the pre-rasterized image). In effect, the horizontaland vertical pixel sizes of the image are down-sampled by a factor k,where:

k=I/(X*S)

with

-   -   I=pixel size of the original image (number of pixels either        vertically or horizontally assuming proportional scaling)    -   X=Native printer resolution in DPI    -   S=Dimensional size of output image (i.e., inches horizontally or        vertically)        therefore, in this example, I=2000 pixels, X=300 DPI and S=1        inch, with k=6.6667. In some embodiments, it may be necessary to        up-sample the original image, in which case k will be larger        than 1. In addition, other steps in the pre-rasterization (in        addition to image resizing) may be done at this stage including        dithering, monochrome conversion, moire pattent cancellation,        and other image processing steps such as are known in the art.

FIG. 6B illustrates examples of object rotation as may be performed byembodiments of the present invention. As shown in FIG. 6B, print jobobjects may include image objects 642 a or 644 a (image bitmaps), textobjects with features such as a drop shadow 646A, or other objects suchas text, vector objects, and the like (not shown). Image object 642 amay be printed in accordance with the particular print job at it'soriginal rotation (shown in 642 a) and/or at another rotation such as−90 degrees (as shown in object 642 b). Although +/−90 degree and 180degree rotations have been known in the art, they have been usedprimarily in the context of predefined, fixed printer rotations. Imageobject 644 b, however, illustrates pre-rasterization at an arbitraryrotation angle Theta (shown as approximately 45 degrees for purposes ofillustration, but the rotation can be at any desired angle). Arbitraryrotation angles as are shown for object 644 b may be used where an imageobject is rotated relative to the page as shown in FIG. 6C. In addition,for arbitrary page rotation angles, it may be desirable to also generatetransparent elements in the output image file as described below withrespect to FIG. 6E.

FIG. 6E illustrates details of another aspect of the present invention.As shown in FIG. 6E, object 644 a may be rotated to an arbitraryrotation Theta based on the characteristics of the printer and/or therequirements of the page layout. Although object 644 has been rotated,it will still be contained within an overall rectangular image frame inobject 644 c. Consequently, when rotated object 644 c is provided to theprinter, it is typically important that areas outside of the boundariesof the original object are defined as transparent (rather than black orwhite). This allows other print objects in the vicinity to show throughthe transparent areas if they are behind the rotated object 644 c.Consequently, as part of the print rotation step, the rotated object mayinclude an added transparent section defining areas outside of theboundaries of the original object 644 a. The frame defined by thetransparent area in FIG. 644 c becomes the bounds of the pre-rasterizedimage with rotation. For example, with a monochrome object (or a colorobject converted to monochrome in the pre-rasterization process), aspecific bit or bits of individual pixels may be used to define an areaas transparent rather than as a shade of gray (or black or white).

Text object 646A illustrates text with a drop shadow feature 646B. Inexisting printing systems, drop shadow features such as feature 646B aregenerated only at the RIP 154, and can be time intensive to generate.Moreover, since these features are generated only at the RIP 154, it isnot possible to accurately visualize how they will appear on the printedoutput before the printed output is generated. Consequently,pre-generation of drop shadow features such as drop shadow 646B may beadvantageous to allow visualization of how the final printed drop shadowwill look on the typesetter 110. This may be provided by, for example,displaying the drop shadow (or other pre-rasterized features) on atypesetter display such as display 250 of FIG. 2. A vector graphic imagemay also be rasterized at the matching resolution and print angle forthe associated printer. This permits processing of files containinghybrid image types. For example, an encapsulated PostScript (EPS) filemay be used instead of a JPEG (JPG) image where the EPS file containsvector image data as well as raster image components.

As noted previously, the typesetter 110 is configured to generate thesepre-rasterization objects based on the desired print size for the objectand the printer's native resolution and/or rotation. By knowing theprinter's rotation angle, the same print layout may be generated forprocessing on different printers based on the specific printercharacteristics. This is further illustrated in FIG. 6C whichillustrates the printed output flow for two printers 652 a and 652 b.Printer 652 a has a native vertical rotation (i.e., prints in “portrait”orientation as viewed in FIG. 6C), while printer 652 b has a nativehorizontal rotation (i.e., prints in “landscape” orientation as viewedin FIG. 6C). Consequently, image objects 642 a, 644 a and 646A need tobe pre-rasterized into different rotations (based on the native printerrotation) in order to be printed. If this is done in accordance with thepresent invention, the pre-rasterization process includes performingthis rotation (as well as, if necessary, a resolution conversion) in thetypesetter 110, rather than having it performed at the RIP 154 duringexecution of the print job. This permits the compositor 372 to confirmthat a pre-rasterized image element is at the matching print angle andresolution for output on the assigned/targeted printer and to place thepre-rasterized image directly into frame buffer 378 without requiringany further processing by the RIP 370. This may provide significantadvantages in speeding up the overall printing throughput.

FIG. 6D illustrates another example where pre-rasterization may be usedto enhance printing performance. In this case, printed page 630 includesmultiple copies of the print job (for printing page 650) on a singleprinted sheet. The individual sheets 650 may, for example, but out ofsheet 650 after printing. In this example, the objects 642 a, 644 a and646A can be provided to the RIP 154 in print job 144 in multiplepre-rasterized objects, with each object corresponding to a particularrotation (i.e., two rotations in this example for each object). In somecases, multiple rotations and/or resolutions of the same original objectmay be needed in the final print, and these can all be pre-rasterized tofurther speed up printing output.

Print Output Processing

Attention is now directed to FIG. 7 which illustrates details ofgenerating printed output based on a pre-rasterized print job, such asprint job 144 as shown in FIG. 1A. At stage 710 the pre-rasterized printjob is received at a printer system 150 and printer 152. Thepre-rasterized print job includes on or more pre-rasterized objectsalong with instructions for generating the printed page. In an exemplaryembodiment, the print job is in the form of a PostScript file. Afterreceipt, the pre-rasterized objects may be stored at stage 720 in amemory of a raster image processor, such as RIP 154 as shown in FIG. 1A.In addition, a verification step 730 may be performed to determine ifthe pre-rasterized objects match the printer's characteristics,including the native resolution and/or rotation. Additional details ofan embodiment of this step are shown in FIG. 8.

At stage 740, the RIP 154 processes the print job based on the printjob's instructions and the pre-rasterized objects to generate a pagelayout or page frame. This will typically be a bitmap, dot pattern, orother matrix defining the printed page. For example, for a monochromeprintout, the dot pattern may consist of black dots (and blank spaceswhere no black dots are present) that defines the actual output patternof the print rendering station, such as print rendering station 156 ofFIG. 1A.

Finally, the printed output is generated at stage 750, typically byrendering the output on paper or other printable media using thermaltoner, inks, etc. After printing is completed, the object files may beremoved from the RIP 154 memory at stage 760 and/or any remaining dataor information may be flushed prior to the start of the next print job.

FIG. 8 illustrates additional details of an embodiment of a process 800for print output processing. This process may be part of the overallprint processing as shown in FIG. 7. At stage 810, printercharacteristics including the native resolution and rotation angle ofthe printer may be determined or retrieved from memory. This may be doneas part of the print job in the form of processing instructions includedin the print job to perform the verification. The printer'scharacteristics are then compared with the corresponding parameters ofthe pre-rasterized objects in the print job to verify that they match.For example, the pre-rasterized characteristics may be included as datain the print job file. If the printer's native characteristics matchthose of the pre-rasterized print job, the print job may then beexecuted while minimizing use of RIP processing on the pre-rasterizedobjects (i.e., they need not be re-rasterized at the RIP). If theparameters do not match and the original objects are included in theprint job with the pre-rasterized objects, the RIP processing mayinclude generation of native resolution objects by rasterizing theoriginal objects in the RIP as is traditionally done. In this case, itis likely that print processing will be slowed to traditional speedssince the RIP will be unable to take full advantage of thepre-rasterized objects in the print job. The print job, however, willstill be performed correctly, avoiding the often costly error ofprinting to the wrong device settings on the assigned/targeted printer.

PostScript Code Examples

The following code is an example embodiment of PostScript code fordetermining a printers native resolution and rotation angle. Theresulting printed output is shown in FIG. 10.

%This PostScript code determines the resolution and print angle of thedefault transformation matrix. % and prints them to a test page % First,just set up a default font and a text area /Arial findfont 15 scalefontsetfont 72 200 moveto matrix currentmatrix % get the default matrix(ScaleX: ) show % Display the prompt dup % Compute the scaling. Do thisby squaring entry 0 (which store cos angle * scale) % and adding it tothe square of entry 2 (which stores sin angle * scale) % and taking thesquare root. This is the pythagorean theorem. dup 0 get dup mul % squareentry 0 exch 2 get dup mul % square entry 2 add % add together sqrt %take square root dup /scalex exch def % store in variable scalex 72 mul50 string cvs show % convert to dots per point, and display dup 0 getscalex div % now compute angle by getting entry 0 and diving by scale toget cos angle /cosval exch def dup 2 get % now get entry 2 and divide byscale to get sin angle scalex div /sinval exch def % use a simple tableto convert sin angle and cos angle to angle. % we don't need to doarcsin and arccos since the paper can only flow through the printer atone % of these 4 angles. 1 cosval eq 0 sinval eq and { ( Angle: 0) show} if 0 cosval eq 1 sinval eq and { ( Angle: 90) show } if −1 cosval eq 0sinval eq and { ( Angle: 180) show } if 0 cosval eq −1 sinval eq and { (Angle: 270) show } if showpage

As noted previously, when this code is executed on a PostScriptcompatible printer, the printed output is as shown in FIG. 10. In thiscase, the printer's native resolution is 600 dpi and the rotation angleis 0 (zero) degrees.

The following code is an example embodiment of PostScript code includingan embedded pre-rasterized image. The resulting VDP output is shown inFIGS. 11A-11D.

FIGS. 10 a, 10 c and 10 d illustrates the first page of printed outputincluding the pre-rasterized image of Jefferson located in the uppercenter of the output page. While a number of printed items arestandardized between these two pages, there is also customerindividualized information printed on each page, illustrating VDPfunctionality. FIG. 10 b illustrates a second output page correspondingto FIG. 10 a, where the pre-rasterized image of Jefferson is now placedat the bottom right of the page. In other printed outputs it may beplaced at other locations, rotations, sizes, and/or may have otherfeatures described herein pre-rasterized, such as drop shadows.

It is noted that in various embodiments the present invention may relateto processes such as are described or illustrated herein. Theseprocesses are typically implemented in one or more modules as aredescribed herein, and such modules may include computer software storedon a computer readable medium including instructions configured to beexecuted by one or more processors. It is further noted that, while theprocesses described and illustrated herein may include particularstages, it is apparent that other processes including fewer, more, ordifferent stages than those described and shown are also within thespirit and scope of the present invention. Accordingly, the processesshown herein are provided for purposes of illustration, not limitation.

As noted, some embodiments of the present invention may include computersoftware and/or computer hardware/software combinations configured toimplement one or more processes or functions associated with the presentinvention such as those described herein. These embodiments may be inthe form of modules implementing functionality in software and/orhardware software combinations. Embodiments may also take the form of acomputer storage product with a computer-readable medium having computercode thereon for performing various computer-implemented operations,such as operations related to functionality as describe herein. Themedia and computer code may be those specially designed and constructedfor the purposes of the present invention, or they may be of the kindwell known and available to those having skill in the computer softwarearts, or they may be a combination of both.

Examples of computer-readable media within the spirit and scope of thepresent invention include, but are not limited to: magnetic media suchas hard disks; optical media such as CD-ROMs, DVDs and holographicdevices; magneto-optical media; and hardware devices that are speciallyconfigured to store and execute program code, such as programmablemicrocontrollers, application-specific integrated circuits (“ASICs”),programmable logic devices (“PLDs”) and ROM and RAM devices. Examples ofcomputer code may include machine code, such as produced by a compileror other machine code generation mechanisms, scripting programs,PostScripts programs, and/or other code or files containing higher-levelcode that are executed by a computer using an interpreter or other codeexecution mechanism.

Computer readable media may be in the form of one or more memory devicessuch as RAM, DRAM, SRAM or other memory devices. As used herein, theterm memory includes individual banks of memory or memory devices aswell as plural banks of memory or memory devices, where the pluralmemory may be incorporated in a single computer system or may bedistributed among several computers or computer systems.

Computer code for storage on computer readable media may be comprised ofone or more modules executing a particular process or processes toprovide useful results, and the modules may communicate with one anothervia means known or developed in the art. For example, some embodimentsof the invention may be implemented using assembly language, Java, C,C#, C++, scripting languages, PostScript, PPML, XML and/or otherprogramming languages and software development tools as are known ordeveloped in the art. Other embodiments of the invention may beimplemented in hardwired circuitry in place of, or in combination with,machine-executable software instructions.

The foregoing description, for purposes of explanation, used specificnomenclature to provide a thorough understanding of the invention.However, it will be apparent to one skilled in the art that specificdetails are not required in order to practice the invention. Thus, theforegoing descriptions of specific embodiments of the invention arepresented for purposes of illustration and description. They are notintended to be exhaustive or to limit the invention to the precise formsdisclosed; obviously, many modifications and variations are possible inview of the above teachings. The embodiments were chosen and describedin order to best explain the principles of the invention and itspractical applications, they thereby enable others skilled in the art tobest utilize the invention and various embodiments with variousmodifications as are suited to the particular use contemplated. It isintended that the following claims and their equivalents define thescope of the invention.

1. A method for enhancing performance in a printing system, comprising:receiving a set of printer characteristics associated with a firstprinter; receiving data defining one or more objects to be incorporatedin a print job; rasterizing, based at least in part on the set ofprinter characteristics, a first object of the one or more objects togenerate a first pre-rasterized object; and generating a pre-rasterizedprint job, in a programmed file format, said print job including saidfirst pre-rasterized object and a set of print layout instructions. 2.The method of claim 1 wherein the set of printer characteristicsincludes data defining a native resolution of the first printer.
 3. Themethod of claim 1 wherein the set of printer characteristics includesdata defining a rotation angle of the first printer.
 4. The method ofclaim 3 wherein the first object is rotated at a print angle other than0, 90, 180 or 270 degrees.
 5. The method of claim 1 wherein the set ofprinter characteristics includes data defining an optimized compressionvalue for the first printer.
 6. The method of claim 5 wherein the firstpre-rasterized object is compressed according to the optimizedcompression value.
 7. The method of claim 1 wherein the first object isa raster image object and the first pre-rasterized object is generatedat a native resolution of the first printer defined in the set ofprinter characteristics.
 8. The method of claim 6 wherein the firstpre-rasterized object is generated at a rotation angle of the firstprinter defined in the set of printer characteristics.
 9. The method ofclaim 1 wherein the first object is a drop shadow object and the firstpre-rasterized object is generated at a native resolution of the firstprinter defined in the set of printer characteristics.
 10. The method ofclaim 1 wherein the first object is a vector object and the firstpre-rasterized object is generated at a native resolution of the firstprinter defined in the set of printer characteristics.
 11. The method ofclaim 7 wherein the one or more objects includes a vector object andfurther comprising: rasterizing the vector object to generate a secondpre-rasterized object; and generating said pre-rasterized print job toinclude said second pre-rasterized object.
 12. The method of claim 7wherein the one or more objects includes a drop shadow object andfurther comprising: rasterizing the drop shadow object to generate asecond pre-rasterized object; and generating said pre-rasterized printjob to include said second pre-rasterized object.
 13. The method ofclaim 10 wherein the one or more objects includes a drop shadow objectand further comprising: rasterizing the drop shadow object to generate asecond pre-rasterized object; and generating said pre-rasterized printjob to include said second pre-rasterized object.
 14. A method forenhancing performance in a printing system, comprising: receiving, atthe printing system, a printer characterization file includingexecutable instructions to determine a set of one or more printercharacteristics of the printing system; executing the instructions on aprocessor of the printing system so as to determine said one or moreprinter characteristics; and providing, as an output, said one or moreprinter characteristics.
 15. The method of claim 14 wherein the set ofone or more printer characteristics include a native resolution and anative rotation angle of a printer of the printing system.
 16. Themethod of claim 14 wherein the printer characterization file includesone or more raster images and the set of one or more printercharacteristics include one or more optimized compression levelsassociated with the printing system for said one or more raster images.17. The method of claim 14 wherein the output is provided as data on acomputer readable electronic storage medium.
 18. The method of claim 14wherein the output is provided as a printed output.
 19. The method ofclaim 14 further comprising: providing the output to a typesetter; andgenerating a pre-rasterized print job at the typesetter, said generatinga pre-rasterized print job including: receiving the set of printercharacteristics; receiving data defining one or more objects to beincorporated in a print job; rasterizing, based at least in part on theset of printer characteristics, a first object of the one or moreobjects to generate a first pre-rasterized object; and generating thepre-rasterized print job, in a programmed file format, said print jobincluding said first pre-rasterized object and a set of print layoutinstructions.
 20. The method of claim 19 wherein the set of printercharacteristics includes data defining a native resolution of the firstprinter.
 21. The method of claim 19 wherein the set of printercharacteristics includes data defining a rotation angle of the firstprinter.
 22. The method of claim 21 wherein the first object is rotatedat a print angle other than 0, 90, 180 or 270 degrees.
 23. The method ofclaim 19 wherein the set of printer characteristics includes datadefining an optimized compression value for the first printer.
 24. Themethod of claim 23 wherein the first pre-rasterized object is compressedaccording to the optimized compression value.
 25. The method of claim 19wherein the first object is an image object and the first pre-rasterizedobject is generated at a native resolution of the first printer definedin the set of printer characteristics.
 26. The method of claim 24wherein the first pre-rasterized object is generated at a rotation angleof the first printer defined in the set of printer characteristics. 27.The method of claim 19 wherein the first object is a drop shadow objectand the first pre-rasterized object is generated at a native resolutionof the first printer defined in the set of printer characteristics. 28.The method of claim 19 wherein the first object is a vector object andthe first pre-rasterized object is generated at a native resolution ofthe first printer defined in the set of printer characteristics.
 29. Themethod of claim 25 wherein the one or more objects includes a vectorobject and further comprising: rasterizing the vector object to generatea second pre-rasterized object; and generating said pre-rasterized printjob to include said second pre-rasterized object.
 30. The method ofclaim 25 wherein the one or more objects includes a drop shadow objectand further comprising: rasterizing the drop shadow object to generate asecond pre-rasterized object; and generating said pre-rasterized printjob to include said second pre-rasterized object.
 31. A computerreadable medium containing processor executable instructions for:receiving a set of printer characteristics associated with a firstprinter; receiving data defining one or more objects to be incorporatedin a print job; rasterizing, based at least in part on the set ofprinter characteristics, a first object of the one or more objects togenerate a first pre-rasterized object; and generating a pre-rasterizedprint job, in a programmed file format, said print job including saidfirst pre-rasterized object and a set of print layout instructions. 32.The computer readable medium of claim 31 wherein the set of printercharacteristics includes data defining a native resolution of the firstprinter.
 33. The computer readable medium of claim 31 wherein the set ofprinter characteristics includes data defining a rotation angle of thefirst printer.
 34. The computer readable medium of claim 31 wherein theinstructions include instructions to rasterized the first object at aprint angle other than 0, 90, 180 or 270 degrees.
 35. The computerreadable medium of claim 31 wherein the set of printer characteristicsincludes data defining an optimized compression value for the firstprinter.
 36. The computer readable medium of claim 35 wherein theinstructions include instructions to compress the first object to theoptimized compression value.
 37. The computer readable medium of claim31 wherein the first object is an image object and the instructionsinclude instructions to generate the first pre-rasterized object at anative resolution of the first printer defined in the set of printercharacteristics.
 38. The computer readable medium of claim 36 whereinthe instructions include instructions to generate the firstpre-rasterized object at a rotation angle of the first printer definedin the set of printer characteristics.
 39. The computer readable mediumof claim 31 wherein the first object is a drop shadow object and theinstructions include instructions to generate the first pre-rasterizedobject at a native resolution of the first printer defined in the set ofprinter characteristics.
 40. The computer readable medium of claim 31wherein the first object is a vector object and the instructions includeinstructions to generate the first pre-rasterized object t a nativeresolution of the first printer defined in the set of printercharacteristics.
 41. The computer readable medium of claim 37 whereinthe one or more objects includes a vector object and further includinginstructions to: rasterize the vector object to generate a secondpre-rasterized object; and generate said pre-rasterized print job toinclude said second pre-rasterized object.
 42. The computer readablemedium of claim 37 wherein the one or more objects includes a dropshadow object and further including instructions to: rasterize the dropshadow object to generate a second pre-rasterized object; and generatesaid pre-rasterized print job to include said second pre-rasterizedobject.
 43. A computer readable medium containing instructions forexecution on a printing system processor to: receive a printercharacterization file including a second set of executable instructions;initiate execution of the printer characterization file so as todetermine a set of one or more printer characteristics; and provide, asan output, said set of one or more printer characteristics.
 44. Thecomputer readable medium of claim 43 wherein the set of one or moreprinter characteristics include a native resolution and a nativerotation angle of a printer of the printing system.
 45. The computerreadable medium of claim 43 wherein the printer characterization fileincludes one or more raster images and the printer characteristicsinclude one or more optimized compression levels associated with theprinting system for said one or more raster images.
 46. The computerreadable medium of claim 43 wherein the instructions includeinstructions to provide the output as data on a computer readableelectronic storage medium.
 47. The computer readable medium of claim 43wherein the instructions include instructions to provide the output as aprinted output.